package cn.tedu.spring.lifecycle;

/**
 * @author lhd
 * @date 2024/4/17
 * @apiNote
 */

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * Spring Bean 生命周期
 * 实例化[构造方法]
 * 属性赋值[set方法]
 * 初始化[生命周期初始化方法PostConstruct]
 * 使用阶段
 * 销毁阶段[生命周期的销毁方法PreDestroy]
 */
@Component
public class Life {
    private String mean;

    public Life() {
        System.out.println("1.调用无参构造进行实例化");
    }

    @Value("世界哪么大我想去看看")
    public void setMean(String mean) {
        this.mean = mean;
        System.out.println("2.调用set方法进行属性赋值");
    }

    @PostConstruct
    public void init() {
        System.out.println("3.调用PostConstruct进行初始化");
    }

    @PreDestroy
    public void destroy() {
        System.out.println("5.执行生命周期的销毁方法");
    }

}
